package io.easyspring.common.generator.config;

import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;

/**
 * 生成器全局配置
 *
 * @author summer
 * @version V1.0.0-RELEASE
 * DateTime 2019-05-11 18:40
 */
public class GeneratorGlobalConfig {

    /**
     * 生成全局配置设置
     *
     * @param outPutDir 输出地址(在此项目中不起作用)
     * @return com.baomidou.mybatisplus.generator.config.GlobalConfig
     * Author summer
     * Version V1.0.0-RELEASE
     * DateTime 2019-05-11 18:40
     */
    public static GlobalConfig globalConfig(String outPutDir){

        /*
         * 创建全局策略配置对象
         */
        GlobalConfig globalConfig = new GlobalConfig();

        // 生成文件的输出目录
        globalConfig.setOutputDir(outPutDir);
        // 是否覆盖已有文件 [false]
        globalConfig.setFileOverride(true);
        // 是否打开输出目录 [true]
        globalConfig.setOpen(false);
        // 是否在 xml 中添加二级缓存配置 [false]
        globalConfig.setEnableCache(false);
        // 开发人员 [null]
        globalConfig.setAuthor("summer");
        // 开启 Kotlin 模式 [false]
        globalConfig.setKotlin(false);
        // 开启 swagger2 模式 [false]
        globalConfig.setSwagger2(true);
        // 开启 ActiveRecord 模式 [false]
        globalConfig.setActiveRecord(false);
        // 开启 BaseResultMap [false]
        globalConfig.setBaseResultMap(true);
        // 开启 baseColumnList(mapper.xml 的 BaseColumn) [false]
        globalConfig.setBaseColumnList(true);
        // 时间类型对应策略 [DateType.TIME_PACK]
        globalConfig.setDateType(DateType.ONLY_DATE);

        // 实体命名方式 [null]
        globalConfig.setEntityName(null);
        // mapper 命名方式 [null]
        globalConfig.setMapperName("%sMapper");
        // Mapper xml 命名方式 [null]
        globalConfig.setXmlName("%sMapper");
        // service 命名方式 [null]
        globalConfig.setServiceName("%sService");
        // service impl 命名方式 [null]
        globalConfig.setServiceImplName("%sServiceImpl");
        // controller 命名方式 [null]
        globalConfig.setControllerName("%sController");

        return globalConfig;
    }
}
